iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
自我挑戰組

資料結構到演算法整理心得系列 第 27

圖的最短路徑 - 佛洛伊德演算法 - DAY 27

  • 分享至 

  • xImage
  •  

前言


這篇的理解自己花了一些時間,但還是有點沒把握,盡可能把理解到的內容輸出。如有錯誤煩請指教,真心感謝。

節點和路徑圖


https://ithelp.ithome.com.tw/upload/images/20211011/20107754vatw1aPez7.jpg

各節點至鄰近節點的權重圖
https://ithelp.ithome.com.tw/upload/images/20211011/20107754qMhhqBhYhv.jpg

前驅矩陣 (查詢後理解為:兩個節點最佳距離會經過的節點)[如有錯誤煩請指出~~真的感謝]
https://ithelp.ithome.com.tw/upload/images/20211011/20107754wudZtD0ZRf.jpg

執行步驟


上面看到的權重圖節點只知道節點周圍的節點
這邊要逐一開放節點,直到最後跑完所有節點

STEP 1

開放 A節點,但對其他節點沒有構成影響
https://ithelp.ithome.com.tw/upload/images/20211011/20107754hTPneOS3Wb.jpg

STEP 2

開放 B節點
https://ithelp.ithome.com.tw/upload/images/20211011/20107754CcnVnwDZPz.jpg

A節點可以透過 B節點,進而擁有到達 C、D節點的權重
https://ithelp.ithome.com.tw/upload/images/20211011/20107754FVI43At4Wz.jpg

此時最佳連結也會由 開放的 B節點 替換上去
https://ithelp.ithome.com.tw/upload/images/20211011/201077544zUHLxqZ8d.jpg

STEP 3

開放 C節點
https://ithelp.ithome.com.tw/upload/images/20211011/20107754LR76nP82zx.jpg

A、B節點 都可以透過 C節點,連結到 D節點,進而取得權重
https://ithelp.ithome.com.tw/upload/images/20211011/20107754Oz2FgzX5dp.jpg

被取代的位置,也對應的由 C節點去替換
https://ithelp.ithome.com.tw/upload/images/20211011/20107754lus1lPuAxl.jpg

完成

開放D、E節點基本已經沒有影響了,故到此結束。

這個範例單純讓大家了解整體運作流程,可以往下面看一下參考來源,裡面會有 找到更好的路徑權重,進而替換的狀況產生,可以更了解整個演算法的面貌。

參考來源


上一篇
圖的最小產生樹 - DAY 26
下一篇
圖的最短路徑 - 佛洛伊德演算法 - 表格算法 - DAY 28
系列文
資料結構到演算法整理心得30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言